const MenuService = require('@/service/menu/index');
const Response = require('@/utils/response');
class MenuController { 
  async saveMenu(ctx) {
    const params = ctx.request.body;
    try {
      if (!params.title)
        return Response.error(ctx, '菜单标题不能为空', 400); {
      }
      if(params.type === 1){ // 菜单
        if (!params.path)
          return Response.error(ctx, '菜单路径不能为空', 400); {
        }
        if (!params.component) {
          return Response.error(ctx, '菜单组件不能为空', 400);
        }
      } else if(!params.type){ 
        return Response.error(ctx, '菜单类型错误', 400);
      }
      // if (!params.permission_code) {
      //   return Response.error(ctx, '菜单权限码不能为空', 400)
      // }
      const res = await MenuService.saveMenu(params);
      if (res) {
        return Response.success(ctx, res, '保存菜单成功');
      } else {
        return Response.error(ctx, '保存菜单失败', 500);
      }
    } catch (error) {
      return Response.error(ctx, '保存菜单失败', 500, error);
    }
  }

  async deleteMenu(ctx) { 
    const {id} = ctx.request.body;
    try { 
      const res = await MenuService.deleteMenu(id);
      if (res) {
        return Response.success(ctx, res, '删除菜单成功');
      } else {
        return Response.error(ctx, '删除菜单失败', 500);
      }
    } catch (error) {
      return Response.error(ctx, '删除菜单失败', 500, error);
    }
  }

  async getMenuList(ctx) { 
    const user = ctx.state.user;
    console.log('用户信息',user);
    try {
      const res = await MenuService.getMenuList(user);
      return Response.success(ctx, res, '获取菜单列表成功');
    } catch (error) {
      return Response.error(ctx, '获取菜单列表失败', 500, error);
    }
  }
}
module.exports = new MenuController();